home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / enigma / earcd / giochi / giochi4 / wrmsshll.lha / Install_WormsShell < prev    next >
Text File  |  1996-11-25  |  16KB  |  552 lines

  1. (
  2.     ;Warn about buggy versions of Installer
  3.  
  4.     (if (< @installer-version 43)
  5.     (message "Since you have an old version of Installer, this script may not work correctly. "
  6.         "You are advised to abort now and update your copy of Installer before proceeding.")
  7.     )
  8.  
  9.     (set #yes "YES")
  10.     (set #no "NO")
  11.  
  12.     (if (= @language "english")
  13.     (set #deflangs 1)
  14.     (if (= @language "français")
  15.         (
  16.         (set #deflangs 2)
  17.         (set #yes "OUI")
  18.         (set #no "NON")
  19.         )
  20.         (if (= @language "deutsch")
  21.         (
  22.             (set #deflangs 4)
  23.             (set #yes "JA")
  24.             (set #no "NEIN")
  25.         )
  26.         (set #deflangs 0)
  27.         )
  28.     )
  29.     )
  30.  
  31.     ;Set installation mode
  32.  
  33.     (set #instmode
  34.     (askchoice
  35.         (choices
  36.         "pInstall Worms (floppy version) and WormsShell together"
  37.         "Install Worms CD³² and WormsShell together"
  38.         "Install WormsShell over an existing Worms installation"
  39.         "Update an older installation of WormsShell")
  40.         (prompt "Choose installation mode")
  41.         (help "If you have installed WormsShell before, choose the "
  42.         "last option (Update an older installation of WormsShell).\n\n"
  43.         "Otherwise, you are advised to pick the first or second "
  44.         "option (Install Worms and WormsShell together), depending "
  45.         "on which version of Worms you have. You should delete your "
  46.         "old installation of Worms first.\n\n"
  47.         "If you prefer not to delete your old installation, pick the "
  48.         "third option (Install WormsShell over an existing Worms "
  49.         "installation). This may not result in a very satisfactory "
  50.         "installation, though.")
  51.     )
  52.     )
  53.  
  54.     ;Set various flags depending on installation mode
  55.  
  56.     (set #fromfd (or (= #instmode 0) (= #instmode 2)))
  57.     (set #fromcd (= #instmode 1))
  58.     (set #instworms (or (= #instmode 0) (= #instmode 1)))
  59.     (set #update (= #instmode 3))
  60.  
  61.     ;Initialise various flags
  62.  
  63.     (set #cleanup 0)
  64.     (set #languages 0)
  65.     (set #hdwormcrunched 1)
  66.  
  67.     (if #instworms
  68.     (
  69.         ;Prepare to install Worms from scratch
  70.  
  71.         (set @app-name "Worms")
  72.         (set #dest
  73.         (askdir
  74.             (prompt "Select the drawer to install Worms and WormsShell in. "
  75.             "A new drawer will be created there for them.")
  76.             (help @askdir-help)
  77.             (default @default-dest)
  78.         )
  79.         )
  80.         (set #dest (tackon #dest "Worms"))
  81.         (makedir #dest (infos))
  82.  
  83.         (while (= #languages 0)
  84.         (set #languages
  85.             (askoptions
  86.             (prompt "Which languages would you like to install?")
  87.             (help "Speech samples for the chosen languages will be "
  88.                 "installed for you. You must choose at least one "
  89.                 "language. Each time you run Worms, you will be "
  90.                 "asked which language to use.")
  91.             (choices "pEnglish" "Français" "Deutsch")
  92.             (default #deflangs)
  93.             )
  94.         )
  95.         (if (= #languages 0)
  96.             (message "You must select at least one language.")
  97.         )
  98.         )
  99.     )
  100.     (if #update
  101.         (
  102.         (set #dest
  103.             (askdir
  104.             (prompt "Select the drawer Worms and WormsShell were installed in")
  105.             (help @askdir-help)
  106.             (default "SYS:Worms")
  107.             )
  108.         )
  109.  
  110.         ;Can we find HDWORM?
  111.  
  112.         (if (not (exists (tackon #dest "HDWORM")))
  113.             (
  114.             (set #dest (tackon #dest "Worms"))
  115.             (if (not (exists (tackon #dest "HDWORM")))
  116.                 (abort "Worms is not installed in the selected drawer.")
  117.             )
  118.             (if (not (exists (tackon #dest "WormsShell")))
  119.                 (abort "WormsShell is not installed in the selected drawer.")
  120.             )
  121.             )
  122.         )
  123.         )
  124.         (
  125.         ;Find and check old Worms installation
  126.  
  127.         (set #dest
  128.             (askdir
  129.             (prompt "Select the drawer Worms was installed in")
  130.             (help @askdir-help)
  131.             (default "SYS:Worms")
  132.             )
  133.         )
  134.  
  135.         ;Can we find HDWORM?
  136.  
  137.         (if (not (exists (tackon #dest "HDWORM")))
  138.             (
  139.             (set #dest (tackon #dest "Worms"))
  140.             (if (not (exists (tackon #dest "HDWORM")))
  141.                 (abort "Worms is not installed in the selected drawer.")
  142.             )
  143.             )
  144.         )
  145.  
  146.         ;Do we recognise it?
  147.  
  148.         (working "Checking Worms executable")
  149.  
  150.         (if (= (getsize (tackon #dest "HDWORM")) 130484) ;crunched size
  151.             (if (= (getsum (tackon #dest "HDWORM")) 1617765619)
  152.             (set #hdwormcrunched 1)
  153.             (abort "Your HDWORM executable is corrupt or has been modified.")
  154.             )
  155.             (if (= (getsize (tackon #dest "HDWORM")) 353940) ;decrunched size
  156.             (if (= (getsum (tackon #dest "HDWORM")) 1077440902)
  157.                 (set #hdwormcrunched 0)
  158.                 (abort "Your HDWORM executable is corrupt or has been modified.")
  159.             )
  160.             (if (= (getsize (tackon #dest "HDWORM")) 1736) ;this should be called "WORMS"
  161.                 (abort "Worms has not been installed correctly; please delete "
  162.                 "your installation and reinstall using this script.")
  163.                 (abort "You have an unsupported version of the HDWORM executable. "
  164.                 "Please report this to the author.")
  165.             )
  166.             )
  167.         )
  168.  
  169.         ;Should we delete the unneeded files?
  170.  
  171.         (set #cleanup 1)
  172.  
  173.         (if (= @user-level 2)
  174.             (set #cleanup
  175.             (askbool
  176.                 (prompt "Would you like to remove the unnecessary "
  177.                 "files which the Worms installer copied to your hard drive?")
  178.                 (help "This procedure will delete the files which Worms installs "
  179.                 "to your hard drive but are only required when running from "
  180.                 "floppy disks:"
  181.                 "· devs/system-configuration\n"
  182.                 "· Disk.info\n"
  183.                 "· INSTALL(.info)\n"
  184.                 "· libs/#?.library\n"
  185.                 "· OCEAN\n"
  186.                 "· Run\n"
  187.                 "· s/startup-sequence\n"
  188.                 "· TEAM17")
  189.             )
  190.             )
  191.         )
  192.         )
  193.     )
  194.     )
  195.  
  196.     ;Make sure Installer reports the correct destination at the end
  197.  
  198.     (set @default-dest #dest)
  199.  
  200.     ;Should we decrunch HDWORM?
  201.  
  202.     (if #hdwormcrunched
  203.     (set #decrunchhdworm
  204.         (askbool
  205.         (prompt "Would you like to decrunch Worms?")
  206.         (help "Worms normally decrunches itself after loading, but this takes a long "
  207.             "time unless you have a fast processor. If you decrunch it now, you will "
  208.             "not have to wait for Worms to decrunch every time you run it, although "
  209.             "it will take up about 220K more disk space.")
  210.         )
  211.     )
  212.     )
  213.  
  214.     (set #instguide
  215.     (askbool
  216.         (prompt "Do you want to install the WormsShell guide file?")
  217.         (help "This is the file you should have read before starting "
  218.         "this installation. Even if you have already read it, "
  219.         "you may want to have it to hand in case you want to "
  220.         "make changes to your Worms and WormsShell installations.")
  221.     )
  222.     )
  223.  
  224.     ;Calculate disk space needed
  225.  
  226.     (set #spaceneeded 50000) ;for WormsShell and Worms script, plus a bit spare for icons and stuff
  227.  
  228.     (if (in #languages 0)
  229.     (set #spaceneeded (+ #spaceneeded 750000))
  230.     )
  231.     (if (in #languages 1)
  232.     (set #spaceneeded (+ #spaceneeded 375000))
  233.     )
  234.     (if (in #languages 2)
  235.     (set #spaceneeded (+ #spaceneeded 408000))
  236.     )
  237.     (if #instworms
  238.     (set #spaceneeded (+ #spaceneeded 667000)) ;HDWORM, TWCUSTOM, TW500, TWSTUFF, RunBack, *LIST
  239.     )
  240.     (if #instguide
  241.     (set #spaceneeded (+ #spaceneeded 24000))
  242.     )
  243.     (if #decrunchhdworm
  244.     (set #spaceneeded (+ #spaceneeded 225000))
  245.     )
  246.     (if #cleanup
  247.     (set #spaceneeded (- #spaceneeded 50000))
  248.     )
  249.  
  250.     (while (< (getdiskspace #dest) #spaceneeded)
  251.     (message
  252.         ("You do not appear to have enough free disk space to install %s with the options you have chosen. You will need approximately %ldK more disk space free before you can proceed." @app-name (/ (- #spaceneeded (getdiskspace #dest)) 1024))
  253.     )
  254.     )
  255.  
  256.     ;Ask whether to set the switches
  257.  
  258.     (set #switches
  259.     (askoptions
  260.         (prompt "Select the startup options for Worms. "
  261.         "At the moment, I don't know how to set these safely for all systems. "
  262.         "Please experiment with them and report your experiences to me as "
  263.         "requested in the WormsShell guide. Select the Help button for some "
  264.         "advice.")
  265.         (help "Normally you should set \"USE2MCHIP\" if you have 2M of Chip RAM, "
  266.         "\"USEFAST\" if you have some Fast RAM, and \"CLOSEWB\" if you "
  267.         "don't have both 2M Chip and some Fast. I need people to "
  268.         "experiment with these. Some combinations are likely to cause your "
  269.         "computer to crash, but with your help I hope to make these choices "
  270.         "safe and automatic in future.")
  271.         (choices "pUSE2MCHIP" "USEFAST" "CLOSEWB")
  272.         (default 3)
  273.     )
  274.     )
  275.  
  276.     (set #sheep
  277.     (askbool
  278.         (prompt "Do you want Worms to start with Sheep Mode on?")
  279.         (help "Sheep Mode gives you lots of extra explosive weapons in every round. "
  280.         "However, you can set the availability of weapons freely using the "
  281.         "tooltypes described in the WormsShell guide.")
  282.     )
  283.     )
  284.  
  285.     (if (>= (/ (getversion "libs:lowlevel.library") 65536) 40)
  286.     (set #cd32pad
  287.         (askbool
  288.         (prompt "Do you want to use a CD³² joypad with Worms? (This will "
  289.             "mean that you cannot use the keyboard in Worms.)")
  290.         (help "You do not need to have the CD version of Worms for this "
  291.             "option to work, although it has not yet been tested.")
  292.         )
  293.     )
  294.     )
  295.  
  296.     (set #forcepal
  297.     (askbool
  298.         (prompt "Do you want to force Worms to use a PAL display?")
  299.         (help "This will be necessary only if you have an NTSC Amiga or a PAL "
  300.         "Amiga using an NTSC screenmode for the Workbench screen.")
  301.     )
  302.     )
  303.  
  304.     ;Install WormsShell itself
  305.  
  306.     (if #update
  307.     (
  308.         (working "Updating WormsShell")
  309.         (delete (tackon #dest "WormsShell.info"))
  310.     )
  311.     (working "Installing WormsShell")
  312.     )
  313.  
  314.     (copyfiles (source "Worms") (dest #dest) (help "") (prompt ""))
  315.     (protect (tackon #dest "Worms") "+s") ;in case file has somehow lost the script bit
  316.     (copyfiles (source "WormsShell") (dest #dest) (help "") (prompt ""))
  317.     (copyfiles (source "WormsShell.icon") (dest #dest) (newname "Start_WormsShell.info") (help "") (prompt ""))
  318.  
  319.     (if #instguide
  320.     (copyfiles (source "WormsShell.guide") (dest #dest) (infos) (noposition) (help "") (prompt ""))
  321.     )
  322.  
  323.     (if #instworms
  324.     (
  325.         ;Install Worms
  326.  
  327.         ;Install main Worms files
  328.  
  329.         (if #fromcd
  330.         (
  331.             (askdisk
  332.             (prompt "Insert Worms CD")
  333.             (help @askdisk-help)
  334.             (dest "WORMS")
  335.             )
  336.             (set #source "WORMS:")
  337.         )
  338.         (
  339.             (askdisk
  340.             (prompt "Insert Worms disk 1")
  341.             (help @askdisk-help)
  342.             (dest "TW1")
  343.             )
  344.             (set #source "TW1:")
  345.         )
  346.         )
  347.  
  348.         (working "Installing Worms program")
  349.         (if #decrunchhdworm
  350.         (if (run (cat "decrunchworms \"" (tackon #source "Worms") "\" \"" (tackon #dest "HDWORM") "\""))
  351.             (if (= (getsize (tackon #source "Worms")) 130484) ;crunched size
  352.             (if (= (getsum (tackon #source "Worms")) 1617765619)
  353.                 (abort "Not enough memory to decrunch HDWORM - or perhaps you have "
  354.                 "an incomplete XFD installation?")
  355.                 (abort "Your HDWORM executable is corrupt or has been modified.")
  356.             )
  357.             (abort "You have an unsupported version of the HDWORM executable. "
  358.                 "Please report this to the author.")
  359.             )
  360.         )
  361.         (copyfiles (source (tackon #source "Worms")) (dest #dest) (newname "HDWORM"))
  362.         )
  363.  
  364.         (copyfiles (source (tackon #source "RunBack")) (dest #dest))
  365.         (working "Installing Worms graphics")
  366.         (copyfiles (source (tackon #source "TWSTUFF")) (dest (tackon #dest "TWSTUFF")) (all))
  367.         (working "Installing Worms basic samples")
  368.         (copyfiles (source (tackon #source "TW500")) (dest (tackon #dest "TW500")) (all))
  369.         (working "Installing default Worm and team lists")
  370.         (copyfiles (source (tackon #source "TEAMLIST")) (dest #dest))
  371.         (copyfiles (source (tackon #source "WORMLIST")) (dest #dest))
  372.         (working "Installing custom landscapes")
  373.         (makedir (tackon #dest "TWCUSTOM") (infos))
  374.         (copyfiles (source (tackon #source "TWCUSTOM")) (dest (tackon #dest "TWCUSTOM")) (all))
  375.  
  376.  
  377.         ;Install requested languages
  378.  
  379.         (if (in #languages 0)
  380.         (
  381.             (set #sd1 "ENGLISH")
  382.             (if (not (in #languages 1)) (set #sd2 "ENGLISH"))
  383.             (if (not (in #languages 2)) (set #sd3 "ENGLISH"))
  384.             (if #fromfd
  385.             (
  386.                 (askdisk
  387.                 (prompt "Insert Worms disk 2")
  388.                 (help @askdisk-help)
  389.                 (dest "TW2")
  390.                 )
  391.                 (set #source "TW2:")
  392.             )
  393.             )
  394.             (working "Installing English samples")
  395.             (makedir (tackon #dest "ENGLISH") (infos))
  396.             (copyfiles (source (tackon #source "TWENGLISH")) (dest (tackon #dest "ENGLISH")) (all))
  397.         )
  398.         )
  399.  
  400.         (if (in #languages 1 2)
  401.         (
  402.             (if #fromfd
  403.             (
  404.                 (askdisk
  405.                 (prompt "Insert Worms disk 3")
  406.                 (help @askdisk-help)
  407.                 (dest "TW3")
  408.                 )
  409.                 (set #source "TW3:")
  410.             )
  411.             )
  412.             (if (in #languages 1)
  413.             (
  414.                 (if (not (in #languages 0)) (set #sd1 "FRANCAIS"))
  415.                 (set #sd2 "FRANCAIS")
  416.                 (if (not (in #languages 2)) (set #sd3 "FRANCAIS"))
  417.                 (working "Installant les échantillons françaises")
  418.                 (makedir (tackon #dest "FRANCAIS") (infos))
  419.                 (copyfiles (source (tackon #source "TWFRENCH")) (dest (tackon #dest "FRANCAIS")) (all))
  420.             )
  421.             )
  422.             (if (in #languages 2)
  423.             (
  424.                 (if (not (in #languages 0)) (set #sd1 "DEUTSCH"))
  425.                 (if (not (in #languages 1)) (set #sd2 "DEUTSCH"))
  426.                 (set #sd3 "DEUTSCH")
  427.                 (working "Installing die Deutschen Geräusche")
  428.                 (makedir (tackon #dest "DEUTSCH") (infos))
  429.                 (copyfiles (source (tackon #source "TWGERMAN")) (dest (tackon #dest "DEUTSCH")) (all))
  430.             )
  431.             )
  432.         )
  433.         )
  434.     )
  435.     (
  436.         ;Clean up existing Worms installation
  437.  
  438.         (if #cleanup
  439.         (
  440.             (working "Removing unneeded files")
  441.  
  442.             (delete (tackon #dest "devs") (all))
  443.             (delete (tackon #dest "Disk.info"))
  444.             (delete (tackon #dest "INSTALL") (infos))
  445.             (delete (tackon #dest "libs") (all))
  446.             (delete (tackon #dest "OCEAN"))
  447.             (delete (tackon #dest "Run"))
  448.             (delete (tackon #dest "s") (all))
  449.             (delete (tackon #dest "TEAM17"))
  450.         )
  451.         )
  452.  
  453.         (if #decrunchhdworm
  454.         (if (run (cat "decrunchworms \"" (tackon #dest "HDWORM") "\" \"" (tackon #dest "HDWORM") "\""))
  455.             (abort "Not enough memory to decrunch HDWORM - or perhaps you have "
  456.             "an incomplete XFD installation?")
  457.         )
  458.         )
  459.  
  460.         (if (or
  461.             (run (cat "MakeLink \"" (tackon #dest "ENGLISH") "\" \"" (tackon #dest "TWENGLISH") "\" force"))
  462.             (run (cat "MakeLink \"" (tackon #dest "FRANCAIS") "\" \"" (tackon #dest "TWFRENCH") "\" force"))
  463.             (run (cat "MakeLink \"" (tackon #dest "DEUTSCH") "\" \"" (tackon #dest "TWGERMAN") "\" force"))
  464.         )
  465.         (abort "MakeLink failed to make links for sample directories.")
  466.         )
  467.  
  468.         (set #sd1 "ENGLISH")
  469.         (set #sd2 "FRANCAIS")
  470.         (set #sd3 "DEUTSCH")
  471.     )
  472.     )
  473.  
  474.  
  475.     ;Prepare to set tooltype as requested
  476.  
  477.     (if (in #switches 0)
  478.     (set #uc #yes)
  479.     (set #uc #no)
  480.     )
  481.     (if (in #switches 1)
  482.     (set #uf #yes)
  483.     (set #uf #no)
  484.     )
  485.     (if (in #switches 2)
  486.     (set #cw #yes)
  487.     (set #cw #no)
  488.     )
  489.     (if #sheep
  490.     (set #sm #yes)
  491.     (set #sm #no)
  492.     )
  493.     (if #cd32pad
  494.     (set #jp #yes)
  495.     (set #jp #no)
  496.     )
  497.     (if #forcepal
  498.     (set #fp #yes)
  499.     (set #fp #no)
  500.     )
  501.  
  502.  
  503.     ;Set all the tooltypes
  504.  
  505.     (tooltype (dest (tackon #dest "Start_WormsShell"))
  506.     (settooltype "SAMPLEDIR3" #sd3)
  507.     (settooltype "SAMPLEDIR2" #sd2)
  508.     (settooltype "SAMPLEDIR1" #sd1)
  509.     (settooltype "FORCEPAL" #fp)
  510.     (settooltype "CD32PAD" #jp)
  511.     (settooltype "SHEEPMODE" #sm)
  512.     (settooltype "CLOSEWB" #cw)
  513.     (settooltype "USEFAST" #uf)
  514.     (settooltype "USE2MCHIP" #uc)
  515.     )
  516.  
  517.  
  518.     ;Check ROM version
  519.  
  520.     (if (< (/ (getversion "exec.library" (resident)) 65536) 39)
  521.     (set #breakproc (cat
  522.         "· Reboot your Amiga.\n"
  523.         "· Hold down both mouse buttons until a screen labelled \"Boot Menu\" appears.\n"
  524.         "· Click on \"Advanced Options\".\n"
  525.         "· Click on the cycle-gadget labelled \"Startup-Sequence\".\n"
  526.         "· Click on \"Use\".\n"
  527.         "· Click on the button for your hard drive - probably marked \"" (getdevice "SYS:")
  528.         "\".\n"
  529.         "· Wait for a window containing a copyright notice to appear.\n")
  530.     )
  531.     (set #breakproc (cat
  532.         "· Remove any floppy disks.\n"
  533.         "· Reboot your Amiga.\n"
  534.         "· Hold down both mouse buttons until a screen labelled \"Amiga Early Startup "
  535.         "Control\" appears.\n"
  536.         "· Click on \"Boot With No Startup-Sequence\".\n"
  537.         "· Wait for a window containing a copyright notice to appear.\n")
  538.     )
  539.     )
  540.  
  541.     (message "IMPORTANT: If you do not have enough memory to run Worms after booting "
  542.     "normally, Worms may crash, die (leaving you with a blank screen) "
  543.     "or else exit with an error message. In this case, you will have to run Worms "
  544.     "manually from the CLI. This is not as hard as it may sound, but you may want "
  545.     "to write down these instructions for future reference. These are specific "
  546.     "to your particular Amiga and are therefore not contained in the WormsShell guide. "
  547.     "To run Worms from the CLI:\n"
  548.     #breakproc
  549.     "· Type 'cd \"" #dest "\"' and press Return.\n"
  550.     "· Type 'Worms' and press Return.")
  551. )
  552.